#pragma once
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>

typedef int QDatatype;
typedef struct QueueNode
{
	struct QueueNode* next;
	QDatatype data;
}QNode;

typedef struct Queue
{
	QNode* phead;
	QNode* ptail;
	int size;
}Queue;

void Queue_Init(Queue* q);

void Queue_Destroy(Queue* q);

void Queue_push(Queue* q,QDatatype n);

void Queue_pop(Queue* q);

QDatatype Queue_front(Queue* q);

QDatatype Queue_back(Queue* q);

int Queue_size(Queue* q);

bool Queue_empty(Queue* q);

